;实验11:编写子程序，把包含任意字符并且以 0 结束的字符串中的小写字母转换为大写
;名称：letterc
;参数：ds:si指向首地址
assume cs:code

data segment
	db "Beginner's All-purpose Symbolic Instruction Code.",0
	db "This is A Test of Zero-End"
data ends


code segment
	start:
		mov ax,data
		mov ds,ax
		mov si,0	;首地址ds:si
		call letterc
		mov ax,4c00h
		int 21h
	letterc:
		;想法：循环，测试字符串中每个字符，如果是小写字母，就转换为大写并存回原内存位置。
		;小写字母：61 - 7A
		push ax
		;mov cx,0
			loop1:
				cmp byte ptr ds:[si],0
				jz r
				cmp byte ptr ds:[si],60h
				ja ab
				inc si
				jmp loop1
				ab:
					cmp byte ptr ds:[si], 7Ah
					jna ok
					inc si
					;loop loop1
					jmp loop1
				ok:
					mov al,byte ptr ds:[si]
					sub al,20h 
					mov byte ptr ds:[si],al
					inc si 
					;loop loop1
					jmp loop1
		r:
		pop ax
		ret
code ends
end start
